################################
#
#     Makefile ASSEGNAMENTO3 AA 2015/16
#    
################################

# se si utilizza no naltri file oltre liste.c inserirli nella variabile
# FILE_DA_CONSEGNARE e modificare il makefile in modo he la compilazione
# avvenga correttamente
# ricordarsi di commentare adeguatamente le modifiche

FILE_DA_CONSEGNARE=raggi.c

# preferenze compilatore e flag di compilazione
CC=gcc
CFLAGS= -Wall -pedantic -g

obj = raggi_docenti.o raggi.o

# phony targets
.PHONY: cleanall test1 test2 test3 test4 consegna3 docu

raggi1 : test_one.o $(obj)
	gcc $(obj) test_one.o -o raggi1 -lm

raggi2 : test_two.o $(obj)
	gcc $(obj) test_two.o -o raggi2 -lm

raggi3 : test_three.o $(obj)
	gcc $(obj) test_three.o -o raggi3 -lm

raggi4 : test_four.o $(obj)
	gcc $(obj) test_four.o -o raggi4 -lm

raggi5 : test_five.o $(obj)
	gcc $(obj) test_five.o -o raggi5 -lm

raggi6 : test_six.o $(obj)
	gcc $(obj) test_six.o -o raggi6 -lm

raggi7 : test_seven.o $(obj)
	gcc $(obj) test_seven.o -o raggi7 -lm

raggi.o: raggi.c raggi.h
raggi_docenti.o :raggi_docenti.c raggi.h
test_one.o: test_one.c raggi.h
test_two.o: test_two.c raggi.h
test_three.o: test_three.c raggi.h
test_four.o: test_four.c raggi.h
test_five.o: test_five.c raggi.h
test_six.o: test_six.c raggi.h
test_seven.o: test_seven.c raggi.h

# genera la documentazione con doxygen
docu: ./Doxyfile
	doxygen

cleanall: 
	-rm -f *.o *~ ./core raggi1 raggi2 raggi3


test1: 
	make cleanall
	-rm -fr test_one_out?.txt
	cp DATA/dataPR.txt .
	cp DATA/dataPR1.txt .
	cp DATA/test_one_out?.check .
	make raggi1
	./raggi1 
	diff test_one_out1.txt test_one_out1.check
	diff test_one_out2.txt test_one_out2.check
	@echo "********** Test1 superato!"

test2: 
	make cleanall
	-rm -fr test_two_out_*.txt
	cp DATA/dataPR1.txt .
	cp DATA/test_two_out_*.check .
	make raggi2
	./raggi2
	diff test_two_out_time.txt test_two_out_time.check
	diff test_two_out_position.txt test_two_out_position.check
	@echo "********** Test2 superato!"


test3: 
	make cleanall
	-rm -fr test_two_out_*.txt
	cp DATA/dataPR1.txt .
	cp DATA/test_two_out_*.check .
	make raggi3
	./raggi3
	diff test_two_out_time.txt test_two_out_time.check
	diff test_two_out_position.txt test_two_out_position.check
	@echo "********** Test3 superato!"

test4: 
	make cleanall
	-rm -fr test_four_out_*.txt
	cp DATA/dataPR.txt .
	cp DATA/test_four_out_*.check .
	make raggi4
	./raggi4
	diff test_four_out_time.txt test_four_out_time.check
	diff test_four_out_position.txt test_four_out_position.check
	@echo "********** Test4 superato!"

test5: 
	make cleanall
	cp DATA/dataPR.txt .
	make raggi5
	./raggi5
	@echo "********** Test5 superato!"

test6: 
	make cleanall
	cp DATA/dataPR.txt .
	cp DATA/test_six_out.check .
	make raggi6
	./raggi6
	diff test_six_out.txt test_six_out.check
	@echo "********** Test6 superato!"

test7: 
	make cleanall
	cp DATA/dataPR.txt .
	make raggi7
	./raggi7
	@echo "********** Test7 superato!"

consegna:
	make cleanall
	make test1
	make test2
	make test3
	make test4
	make test5
	./gruppo-check.pl < gruppo.txt
	tar -cvf $(USER)-a3.tar ./gruppo.txt  $(FILE_DA_CONSEGNARE) 
	@echo "********** TAR creato inviare in allegato a una mail a \nsusanna.pelagatti@unipi.it insieme a nome, cognome,  numero di matricola e anno di appartenenza (primo/secondo)"
